package com.ruoyi.a2.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.a2.domain.A2DynamicsInfo;
import com.ruoyi.a2.dto.A2DynamicsInfoCondition;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * AIS/ADS-B动态信息Service接口
 *
 * @author ruoyi
 * @date 2025-02-14
 */
public interface IA2DynamicsInfoService extends IService<A2DynamicsInfo>
{
    /**
     * 查询AIS/ADS-B动态信息
     *
     * @param id AIS/ADS-B动态信息主键
     * @return AIS/ADS-B动态信息
     */
    public A2DynamicsInfo selectA2DynamicsInfoById(Long id);

    /**
     * 查询AIS/ADS-B动态信息列表
     *
     * @param a2DynamicsInfo AIS/ADS-B动态信息
     * @return AIS/ADS-B动态信息集合
     */
    public List<A2DynamicsInfo> selectA2DynamicsInfoList(A2DynamicsInfo a2DynamicsInfo);

    /**
     * 新增AIS/ADS-B动态信息
     *
     * @param a2DynamicsInfo AIS/ADS-B动态信息
     * @return 结果
     */
    public int insertA2DynamicsInfo(A2DynamicsInfo a2DynamicsInfo);

    /**
     * 修改AIS/ADS-B动态信息
     *
     * @param a2DynamicsInfo AIS/ADS-B动态信息
     * @return 结果
     */
    public int updateA2DynamicsInfo(A2DynamicsInfo a2DynamicsInfo);

    /**
     * 批量删除AIS/ADS-B动态信息
     *
     * @param ids 需要删除的AIS/ADS-B动态信息主键集合
     * @return 结果
     */
    public int deleteA2DynamicsInfoByIds(Long[] ids);

    /**
     * 删除AIS/ADS-B动态信息信息
     *
     * @param id AIS/ADS-B动态信息主键
     * @return 结果
     */
    public int deleteA2DynamicsInfoById(Long id);

    A2DynamicsInfo getLast(String mmsiIcao);

    TableDataInfo page(A2DynamicsInfoCondition condition);

    List<A2DynamicsInfo> a2DynamicsInfoHistory(A2DynamicsInfoCondition condition);

    List<A2DynamicsInfo> getList(A2DynamicsInfoCondition condition);

    A2DynamicsInfo getByUniqueCombination(String mmsiIcao,String baseTime,Double lon,Double lat);
}
